// 引入koa
import Koa from 'koa'
//引入router
import Router from 'koa-Router'
//post请求
import bodyParser  from 'koa-bodyparser'
//解决跨域
import cors from "@koa/cors"
//解决传递过来的数据的
import {koaBody} from "koa-body";
//创建实例
const app = new Koa();
//创建路由
let router = new Router();
// 引入oss
import OSS  from 'ali-oss';

const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
  region: 'oss-cn-beijing',
  // 从环境变量中获取访问凭证。运行本代码示例之前，请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: 'LTAI5tBim4tFuX8ubPMNAkQY',
  accessKeySecret: 'IBe9cZ9sn5fRZmy8sANGcApoCcx8Hc',
  // 填写Bucket名称。
  bucket: 'cqqshixun',
});

//中间件
app.use(bodyParser());
app.use(cors());
app.use(koaBody({ multipart: true }));
app.use(router);


router.post('/api/upload',async(ctx)=>{
    console.log('上传')
    console.log('接收数据',ctx.request.files)
    //  filepath: 'C:\\Users\\ASUS\\AppData\\Local\\Temp\\8ef9a83620bfcbf9b280db600',
    // newFilename: '8ef9a83620bfcbf9b280db600',
    // originalFilename: '1.jpg',
    let file = ctx.request.files.file;

    try {
    // 填写OSS文件完整路径和本地文件的完整路径。OSS文件完整路径中不能包含Bucket名称。
    // 如果本地文件的完整路径中未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件。
    const result = await client.put(
        file.originalFilename, 
        file.filepath
    // 自定义headers
    // ,{headers}
    );
    console.log(result);
    ctx.body={
        code:200,
        msg:'上传成功',
        url:result.url
    }
  } catch (e) {
    console.log(e);
  }  
})
app.listen(9000,()=>{
    console.log('服务启动成功,端口号9000')
});